package com.wang.jmonkey.modules.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wang.jmonkey.modules.system.model.entity.SystemDaclEntity;
import com.wang.jmonkey.modules.system.model.entity.SystemUserEntity;
import com.wang.jmonkey.modules.system.model.enums.SystemDaclPrincipalTypeEnum;
import com.wang.jmonkey.modules.system.model.param.SystemUserParam;

import java.io.Serializable;

/**
 * 数据权限信息(SystemDacl)表服务接口
 *
 * @author HeJiawang
 * @since 2021-05-14 16:12:41
 */
public interface SystemDaclService extends IService<SystemDaclEntity> {

    /**
     * 删除用户数据权限信息
     * @param userId 用户id
     * @return true 删除成功
     */
    boolean deleteByUserId(Serializable userId);

    /**
     * 更新用户数据权限信息
     * @param user 用户信息
     * @return true 维护更新成功
     */
    boolean refreshDacl(SystemUserParam user);

    /**
     * 删除数据权限信息与用户关联关系
     * @param principalId 数据主体id
     * @param type 数据类型
     * @return true 删除成功
     */
    boolean deleteByPrincipalId(Serializable principalId, SystemDaclPrincipalTypeEnum type);
}
